﻿using System;
using System.Collections.Generic;
using System.Text;
using Model;

namespace BLL
{
    public class User
    {
        //判断用户名是否存在;存在返回false，不存在返回true
        public bool CheckAct(string account)
        {
            DAL.User User = new DAL.User();
            if (User.GetUserByAct(account) == null) return true;
            return false;
        }

        //判断用户密码是否正确，若正确就返回其对应身份
        //返回-1为不正确，0为用户，1为admin
        public int CheckPassword(string account, string password)
        {
            DAL.User User = new DAL.User();
            UserInfo user = User.GetUserByAct(account);
            if (user != null)
            {
                if (user.password == password)
                {
                    return (user.identity == "用户") ? 0 : 1;
                }
                else
                {
                    return -1;
                }
            }
            return -1;
        }
        //添加新的用户信息到数据库（用户名，密码）
        public int CreateUserAct(UserInfo user)
        {
            DAL.User User = new DAL.User();
            return User.InsertUser(user);
        }
        //获得用户信息并显示（包括用户名、性别、真名、地址、电话，即返回所有的用户信息除图片）
        public UserInfo ShowUserInfo(string account)
        {
            DAL.User User = new DAL.User();
            return User.GetUserByAct(account);
        }
        //修改用户信息到数据库(用户名、性别)
        public int UpdateUserInfo(UserInfo user, string oldAct)
        {
            DAL.User User = new DAL.User();
            return User.UpdateUser(user, oldAct);
        }
        //修改用户密码到数据库（用户名，密码）
        public int UpdateUserPass(UserInfo user, string newpass)
        {
            DAL.User User = new DAL.User();
            return User.UpdateUserPass(user, newpass);
        }
        //修改用户密码到数据库（用户名，姓名，电话，地址）
        public int UpdateUserAddr(UserInfo user, string account)
        {
            DAL.User User = new DAL.User();
            return User.UpdateUserAddr(user, account);
        }
        //删除用户信息
        public int DeleteUserInfo(string account)
        {
            DAL.User User = new DAL.User();
            return User.DeleteUser(account);
        }
        //判断MongoDB数据库中是否有该用户的头像
        public bool CheckUserIcon(string account)
        {
            DAL.User User = new DAL.User();
            if (User.GetUserIcon(account) == null) return false;
            else return true;
        }
        //向MongoDB数据库中添加用户头像(初始化，默认最开始无头像的时候)
        public int AddUserIcon(string account, byte[] newicon)
        {
            DAL.User User = new DAL.User();
            return User.InsertUserIcon(account, newicon);
        }
        //向MongoDB数据库中修改用户头像
        public int UpdateUserIcon(string account, byte[] newicon)
        {
            DAL.User User = new DAL.User();
            return User.UpdateUserIcon(account, newicon);
        }
        //将上述三种方法封装到一个方法里，点击用户头像图片的时候直接调用
        public int ChangeUserIcon(string account, byte[] newicon)
        {
            if (CheckUserIcon(account)) return UpdateUserIcon(account, newicon);
            else return AddUserIcon(account, newicon);
        }
        //展示用户头像
        public byte[] ShowUserIcon(string account)
        {
            DAL.User User = new DAL.User();
            return User.GetUserIcon(account);
        }
        //从MongoDB数据库中删除用户头像
        public int DeleteUserIcon(string account)
        {
            DAL.User User = new DAL.User();
            return User.DeleteUserIcon(account);
        }

        public int UpdUserIconAct(string newact, string oldact)
        {
            DAL.User User = new DAL.User();
            return User.UpdUserIconAct(newact, oldact);
        }
    }
}
